Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

547
Visualizações
React Hook "useNavigate" no se puede llamar en el nivel superior. Los React Hooks deben llamarse en un componente de función React o en una función React Hook personalizada
import { useNavigate} from 'react-router-dom'; import React from 'react' import CustomButton from '../custom-button/custom-button.component'; import './cart-dropdown.styles.scss'; import CartItem from '../cart-item/cart-item.component'; import {connect} from 'react-redux'; import { selectCartItems } from '../../redux/cart/cart.selectors'; import {createStructuredSelector} from 'reselect'; const CartDropDown = ({cartItems }) => { return ( <div className="cart-dropdown"> <div className="cart-items"> {cartItems.length ? cartItems.map(cartItem =><CartItem key={cartItem.id} item={cartItem} />) : <span className="empty-message">Your cart is empty</span> } <CustomButton onClick{() => window.history.push('/checkout')}> GO TO CHECKOUT </CustomButton> </div> </div> ) } const mapStateToProps = createStructuredSelector({ cartItems: selectCartItems }) export default useNavigate(connect(mapStateToProps) (CartDropDown));
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

useNavigate no es un componente de orden superior, es un enlace React, debe usarse dentro de un componente de función o un enlace React personalizado.

Muévalo al cuerpo de la función y corrija la navegación.

 const CartDropDown = ({ cartItems }) => { const navigate = useNavigate(); // <-- use hook in component return ( <div className="cart-dropdown"> <div className="cart-items"> {cartItems.length ? cartItems.map(cartItem => ( <CartItem key={cartItem.id} item={cartItem} /> )) : <span className="empty-message">Your cart is empty</span> } <CustomButton onClick{() => navigate('/checkout')} // <-- call navigate in handler > GO TO CHECKOUT </CustomButton> </div> </div> ) } const mapStateToProps = createStructuredSelector({ cartItems: selectCartItems }) export default connect(mapStateToProps)(CartDropDown);
about 4 years ago · Juan Pablo Isaza Relatório

0

Un gancho de reacción debe estar dentro del componente. Obtiene una función de navigate de useNavigate() , y luego la llama para navegar.

 import { useNavigate } from 'react-router-dom' import React from 'react' import CustomButton from '../custom-button/custom-button.component' import './cart-dropdown.styles.scss' import CartItem from '../cart-item/cart-item.component' import { connect } from 'react-redux' import { selectCartItems } from '../../redux/cart/cart.selectors' import { createStructuredSelector } from 'reselect' const CartDropDown = ({ cartItems }) => { const navigate = useNavigate() // <-- hooks must be INSIDE the component const onCustomButtonClick = (event) => { //window.history.push('/checkout') // <-- no navigate('/checkout') } return ( <div className="cart-dropdown"> <div className="cart-items"> { cartItems.length ? cartItems.map(cartItem => <CartItem key={cartItem.id} item={cartItem} />) : <span className="empty-message" > Your cart is empty</span> } <CustomButton onClick={onCustomButtonClick}> GO TO CHECKOUT </CustomButton> </div> </div>) } const mapStateToProps = createStructuredSelector({ cartItems: selectCartItems }) //export default useNavigate(connect(mapStateToProps)(CartDropDown)) export default CartDropDown
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda